Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

217
Vistas
Cómo solucionar el problema "Error de tipo: letras.pop no es una función" en mi código

Estoy trabajando en un problema que requiere que invierta una cadena sin tener que cambiar la posición de los caracteres que no son cadenas, caracteres como !, (, ), | y así.

Creo que casi he terminado de resolver el problema, pero sigo recibiendo el error TypeError: letters.pop is not a function , intenté verificar cuál podría ser la causa de la posición y obtuve una pista de que .pop no se puede usar en ningún tipo de datos eso no es una matriz. Estoy usando el método .pop en una matriz que en realidad es una matriz válida, pero sigo recibiendo el error.

Creo que me estoy perdiendo algo y me alegraría si alguien pudiera mostrarlo.

 let word = "hello-world!" const isLetter = (word) => { return word.toUpperCase() !== word.toLowerCase() } const letters = (word) => { return [...word].filter((letter) => isLetter(letter)) } const reverseWord = [...word].map((letter) => isLetter(letter) ? letters.pop() : letter).join("") console.log(reverseWord)
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

letters.pop() no es una función. pop() es una función en arreglos, pero letters no es un arreglo. es una funcion ¿Querías invocarlo?:

 letters(word).pop()

Aunque tenga en cuenta que la función devuelve una nueva matriz cada vez que se invoca. Entonces esa operación realmente no hace nada útil. ¿Quizás, en cambio, pretendía invocar la función de inmediato y solo una vez y hacer que las letters almacenen la matriz resultante?:

 const letters = ((word) => { return [...word].filter((letter) => isLetter(letter)) })(word);

Nota: No puedo decir si esto hará que todo su programa funcione como se esperaba. La lógica me parece extraña y es posible que también haya otros problemas. Pero el punto principal aquí es que las letters en sí mismas no son una matriz en el código original, es una función que devuelve una matriz.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Es porque las letras eran una función de flecha, no una matriz. Intenté reproducir su problema e hice algunos cambios en él. He adjuntado un fragmento de código de trabajo (está devolviendo la cadena en orden inverso). Espero que así es como querías que funcionara.

 let word = "hello-world!" const isLetter = (word) => { return word.toUpperCase() !== word.toLowerCase() } const letters = [...word].filter((letter) => isLetter(letter)) const reverseWord = [...word].map((letter) => isLetter(letter) ? letters.pop() : letter).join("") console.log(reverseWord)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda